The Internet is a well-known, global network of cooperatively interconnected computer networks. The World-Wide Web portion of the Internet is a collection of server computers (referred to as "sites") that store documents which are typically accessible by the public. The Intranet uses similar protocols and has a similar user interface to the Internet. The Intranet, however, restricts access to a network by users outside of a defined group, such as users who are not employees of a corporation. Hereinafter, any description of the Internet also is applicable to Intranet, unless otherwise specified.
Software, generally known as "browsers," is now in wide-spread use for retrieving (also known as "downloading") documents (also known as "Web pages") from the World-Wide Web and viewing such documents in hyper-text markup language (HTML) format. These HTML documents generally include text, HTML "tags" that specify the format of a document, and links (referred to as "hyper-links") that point to related documents on the network and other files containing information (e.g., sound, images, video, etc.) to be combined into the document. In use, browser software allows a user to navigate (also known as "browse") between documents and sites on the World-Wide Web.
Software object components also may be used with the HTML documents for displaying executable content, such as for animations or information processing. Currently, most Internet browsers support embedded software object components in the form of ActiveX controls, Java applets, and scripts (e.g., VB scripts and Java scripts).
Many sites store information relating to a user's browsing characteristics, such as what links the user activated, how often the user accesses the site, and how long the user remained on a particular Web page. These characteristics may be used to display content that is customized for that particular user, rather than displaying generic content that is displayed to all users. Customized information also may be directly entered by the user. For example, a document may be displayed to the user having customization options relating to news, sports, entertainment, etc. Based on the options the user selects, the document only displays content related to those selected options. Moreover, the site stores the user-selected options so that the customization information is re-displayed when the user re-accesses the same document at a later time.
Such customization information is often stored in data structures (e.g., objects) on different storage mechanisms located on a network. Such storage mechanisms have different formats for storing data and different protocols or commands for accessing the data within the data structures.
Application developers write applications that use the storage mechanisms to present customization information to a user. But to write such applications, the developer must determine what storage mechanism the information is stored on, how the user is identified on that storage mechanism, and what commands that storage mechanism uses for providing the desired information. Obviously, the more storage mechanisms used in the system, the more difficult it is for the application developer to keep track of the particular nuances for accessing data on each storage mechanism.
Additionally, each storage mechanism or each data structure on a storage mechanism has its own schema. A schema defines the properties that are available on a particular storage mechanism or data structure. Thus, an application developer may have to search several schemas to find a desired property.
To overcome the aforementioned shortcomings, a system and method is provided for freeing an application developer from having to determine where a storage mechanism containing a desired user property is located on the Internet network and how to identify the user for that storage mechanism.
In one aspect of the invention, an application developer may obtain user properties by using a logical name, which is a user-friendly name, associated with the location of the property. For example, a property may be stored in a data structure having a full path name LDAP://ldap1/o=microsoft/ou=members/ou=MicrosoftNetwork. Rather than using this full path name, the application developer may access the data structure using a logical name called "MSN." These user-friendly names make it faster and easier for an application developer to create applications. The user-friendly name also frees the developer from having to identify or worry about the particular path name where the storage mechanism is stored.
When a request for a user property is received from an application, the logical name is used as a key to access a database entry. The database entry includes the location or path name of a data structure containing the desired property. A request is then constructed for accessing the user property, and once the user property is obtain from the data structure, it is passed back to the application.
In another aspect of the invention, an application developer is provided access to a schema that is an aggregation of schemas from the various storage mechanisms on the network. The aggregated schema makes it easier for an application developer to determine the user properties that are available and where such user properties are stored on the network.
The schema concept is similar to a Unix-based system called a "mount" process where a single, virtual file system can be built out of multiple, actual storage mechanisms. Typically, in Unix, a single configuration file describes each of the mechanisms and where such mechanisms fit into the overall file system namespace. In Unix, however, all the storage mechanisms store information in a similar format. The present invention, on the other hand, allows an application developer to access multiple storage mechanisms that store information in different formats.
In yet a further aspect of the invention, the storage mechanisms may be cross-linked so that information obtained from one storage mechanism can be used to access information on another storage mechanism. Such cross-linking can be used for grouping users together so that each user in the group has a property that is common to all members of the group.
Additional features and advantages of the invention will be made apparent from the following detailed description of an illustrated embodiment which proceeds with reference to the accompanying drawings.